package com.wang.test;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Transaction;
import org.hibernate.classic.Session;
import org.junit.Test;

import com.wang.entity.User;
import com.wang.utils.HibernateBaseUtil;

/**
 * @author: 王雪洋
 * @Date: 2017年8月6日 下午6:54:55
 * @Description:hibernate的复杂查询  借助 Query
 */
public class testComplexSelect {
	@Test
	/**
	 * 查询t_user表中的所有数据
	 * HQL语法  类似sql  from类，名 没有select语句 如果需要访问列名 对使用表的别名  使用.属性访问
	 */
	public void testSelect(){
		Session session = HibernateBaseUtil.getSession();
		Transaction tx = session.getTransaction();
		tx.begin();
		//from  User是对应 的实体名称
		Query query = session.createQuery("from User");
		List<User> list = query.list();
		for (User user : list) {
			System.out.println(user);
		}
	}
	@Test
	/**
	 * 查询t_user表中 username 为 lisi
	 * from User [as] t where t.username = 'lisi'
	 */
	public void testSelect2(){
		Session session = HibernateBaseUtil.getSession();
		Transaction tx = session.getTransaction();
		tx.begin();
		//from  User是对应 的实体名称 
		Query query = session.createQuery("from User u where u.username like '%li%'");
		List<User> list = query.list();
		for (User user : list) {
			System.out.println(user);
		}
	}
	/**
	 * 参数绑定的查询
	 */
	@Test
	public void testQuery(){
		
	}
}
